//@ run-pass
//! regression test for issue #50825, #51044
//! Check that the feature gate normalizes associated types.

#![allow(dead_code)]
struct Foo<T>(T);
struct Duck;
struct Quack;

trait Hello<A>
where
    A: Animal,
{
}

trait Animal {
    type Noise;
}

trait Loud<R> {}

impl Loud<Quack> for f32 {}

impl Animal for Duck {
    type Noise = Quack;
}

impl Hello<Duck> for Foo<f32> where f32: Loud<<Duck as Animal>::Noise> {}

fn main() {}
